<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 生成平衡数组的方案数次数 -->
    <script>
      /*
        方法：这个方法的关键在于用正负来区分奇数index和偶数index，如果遇到了奇数index的项就在前面的结果上减去这个数字，
        如果遇到了偶数index的项，就在前面的结果上加上这个数字。arr[i]表示0～i-1项中偶数index项减去奇数index项的结果。
        在最后一个循环删除第i项的时候，arr[n]-arr[i+1]表示后面的项改变了奇偶系数的结果。
      */
      var balance = function (nums) {
        let n = nums.length
        let arr = new Array(n + 1).fill(0)
        for (let i = 0; i < n; i++) {
          arr[i + 1] = arr[i] + (i % 2 == 0 ? nums[i] : -nums[i])
        }
        let res = 0
        for (let i = 0; i < n; i++) {
          if (arr[i] - (arr[n] - arr[i + 1]) == 0) {
            res++
          }
        }
        return res
      }
      // console.log(balance([2, 1, 6, 4]))
      // console.log(balance([1, 1, 1]))
      console.log(balance([1, 2, 3]))
    </script>
  </body>
</html>
